package br.ceut.especializacao.poo.exemplares;

import java.util.List;

import br.ceut.especializacao.poo.autores.Autor;
import br.ceut.especializacao.poo.util.RepositorioException;

public class CadastroExemplares {

    private RepositorioExemplares exemplares;

    public CadastroExemplares(RepositorioExemplares repositorio) {
        this.exemplares = repositorio;
        
    }

    public void cadastrar(Exemplar exemplar) throws ExemplarJaCadastradoException,
            RepositorioException {
        if (exemplar != null) {
            if (!exemplares.existe(exemplar.getIdExemplar())) {
            	exemplares.inserir(exemplar);
            } else {
                throw new ExemplarJaCadastradoException(exemplar.getIdExemplar());
            }
        } else {
            throw new IllegalArgumentException();
        }
    }

    public void remover(int idExemplar) throws ExemplarNaoEncontradoException, RepositorioException {
    	exemplares.remover(idExemplar);
    }

    public void atualizar(Exemplar autor) throws ExemplarNaoEncontradoException,
            RepositorioException {
    	exemplares.atualizar(autor);
    }

    public Exemplar procurar(int idExemplar) throws ExemplarNaoEncontradoException,
            RepositorioException {
        return exemplares.procurar(idExemplar);
    }

	public List<Exemplar> getExemplares() {
		try {
			return exemplares.getExemplares();
		} catch (RepositorioException e) {
			e.printStackTrace();
		}
		return null;
	}

	public Exemplar buscarExemplar(int idExemplar) throws ExemplarNaoEncontradoException, RepositorioException {
		return exemplares.procurar(idExemplar);
	}
}
